package cn.melonlib.graphql.annos;

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface GraphqlField {

    /**
     * 默认获取字段本身名称，当jdk不支持保存字段名称时，需要用到此属性
     * @return
     */
    String name() default "";

    /**
     * 用户生成接口类型的字段注释
     * @return
     */
    String comment() default  "";

    /**
     * 必须输入，当类型为输入类型的时候生效
     * @return
     */
    boolean required() default false;

    /**
     * 内容必填，当类型为List的时候，内部元素是否为必填
     * @return
     */
    boolean requiredBody() default false;

    /**
     * 忽略该字段，不予记录为一个graphql的有效字段，默认为false
     * @return
     */
    boolean ignore() default false;

}
